/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package edi.init;

import edi.dao.DepUsrDocDao;
import edi.dao.DepartmentDao;
import edi.dao.DepartmentUserDao;
import edi.dao.DocHistoryDao;
import edi.dao.DocTypeDao;
import edi.dao.DocumentDao;
import edi.dao.UserDao;
import edi.entities.DepUsrDocEntity;
import edi.entities.DepartmentEntity;
import edi.entities.DepartmentUserEntity;
import edi.entities.DocHistoryEntity;
import edi.entities.DocTypeEntity;
import edi.entities.DocumentEntity;
import edi.entities.UserEntity;
import edi.entities.enums.DocPermission;

import javax.annotation.PostConstruct;
import org.springframework.beans.factory.annotation.Autowired;
import edi.entities.enums.DocPermission;
import org.springframework.stereotype.Service;

/**
 *
 * @author ge
 */

@Service
public class AppStartup {
    
        @Autowired
        DocTypeDao dtDao;
        
        @Autowired
        UserDao uDao;
        
        @Autowired
        DepartmentDao depDao;
        
        @Autowired
        DepartmentUserDao duDao;
        
        @Autowired
        DepUsrDocDao dudDao;
        
        @Autowired
        DocumentDao docDao;
        
        @Autowired
        DocHistoryDao dhDao;
        
        @PostConstruct
        public void init() {
            
//            if(depDao.findAll().isEmpty()){
//                DepartmentEntity dep1 = new DepartmentEntity();
//                dep1.setDepCode("CS");
//                dep1.setDepName("Consulting");
//                depDao.saveOrUpdate(dep1);
//                DepartmentEntity dep2 = new DepartmentEntity();
//                dep2.setDepCode("OS");
//                dep2.setDepName("Outsourcing");
//                depDao.saveOrUpdate(dep2);
//                DepartmentEntity dep3 = new DepartmentEntity();
//                dep3.setDepCode("RD");
//                dep3.setDepName("Research & Development");
//                depDao.saveOrUpdate(dep3);
//                DepartmentEntity dep4 = new DepartmentEntity();
//                dep4.setDepCode("PD");
//                dep4.setDepName("Produkcja");
//                depDao.saveOrUpdate(dep4);
//                DepartmentEntity dep5 = new DepartmentEntity();
//                dep5.setDepCode("KS");
//                dep5.setDepName("Ksiegowosc");
//                depDao.saveOrUpdate(dep5);
//                DepartmentEntity dep6 = new DepartmentEntity();
//                dep6.setDepCode("HR");
//                dep6.setDepName("Human Resources");
//                depDao.saveOrUpdate(dep6);
//                DepartmentEntity dep7 = new DepartmentEntity();
//                dep7.setDepCode("IS");
//                dep7.setDepName("IT Support");
//                depDao.saveOrUpdate(dep7);
//            }
//
//
//            if(dtDao.findAll().isEmpty()){
//                DocTypeEntity dtype1 = new DocTypeEntity();
//                dtype1.setDctName("Statystyki");
//                dtype1.setDctExtension("doc");
//                dtDao.saveOrUpdate(dtype1);
//                DocTypeEntity dtype2 = new DocTypeEntity();
//                dtype2.setDctName("Faktura VAT");
//                dtype2.setDctExtension("pdf");
//                dtDao.saveOrUpdate(dtype2);
//                DocTypeEntity dtype3 = new DocTypeEntity();
//                dtype3.setDctName("Potwierdzenie wyplaty wynagrodzenia");
//                dtype3.setDctExtension("doc");
//                dtDao.saveOrUpdate(dtype3);
//                DocTypeEntity dtype4 = new DocTypeEntity();
//                dtype4.setDctName("Potwierdzenie uregoulowania platnosci");
//                dtype4.setDctExtension("doc");
//                dtDao.saveOrUpdate(dtype4);
//                DocTypeEntity dtype5 = new DocTypeEntity();
//                dtype5.setDctName("Product Backlog rozwijanego systemu");
//                dtype5.setDctExtension("doc");
//                dtDao.saveOrUpdate(dtype5);
//                DocTypeEntity dtype6 = new DocTypeEntity();
//                dtype6.setDctName("Zamowienie zmiany w systemie");
//                dtype6.setDctExtension("doc");
//                dtDao.saveOrUpdate(dtype6);
//                DocTypeEntity dtype7 = new DocTypeEntity();
//                dtype7.setDctName("Podanie o organizacje szkolenia dla klienta");
//                dtype7.setDctExtension("doc");
//                dtDao.saveOrUpdate(dtype7);
//                DocTypeEntity dtype8 = new DocTypeEntity();
//                dtype8.setDctName("Podanie o urlop");
//                dtype8.setDctExtension("doc");
//                dtDao.saveOrUpdate(dtype8);
//                DocTypeEntity dtype9 = new DocTypeEntity();
//                dtype9.setDctName("Umowa o prace");
//                dtype9.setDctExtension("doc");
//                dtDao.saveOrUpdate(dtype9);
//                DocTypeEntity dtype10 = new DocTypeEntity();
//                dtype10.setDctName("Protokol odbioru");
//                dtype10.setDctExtension("doc");
//                dtDao.saveOrUpdate(dtype10);
//                DocTypeEntity dtype11 = new DocTypeEntity();
//                dtype11.setDctName("Protokol zdawczo - odbiorczy");
//                dtype11.setDctExtension("doc");
//                dtDao.saveOrUpdate(dtype11);
//                DocTypeEntity dtype12 = new DocTypeEntity();
//                dtype12.setDctName("Zgloszenie problemu z systemem wew");
//                dtype12.setDctExtension("doc");
//                dtDao.saveOrUpdate(dtype12);
//                DocTypeEntity dtype13 = new DocTypeEntity();
//                dtype13.setDctName("Podanie o przydzielenie dostepu");
//                dtype13.setDctExtension("doc");
//                dtDao.saveOrUpdate(dtype13);
//            }
//
//            if(uDao.findAll().isEmpty()){
//                UserEntity usr1 = new UserEntity();
//                usr1.setUsrFirstName("Michał");
//                usr1.setUsrLastName("Nalot");
//                usr1.setUsrLogin("mnal");
//                //Hasło to password
//                usr1.setUsrPassword("5f4dcc3b5aa765d61d8327deb882cf99");
//                usr1.setUsrStatus(null);
//                uDao.saveOrUpdate(usr1);
//
//                UserEntity usr2 = new UserEntity();
//                usr2.setUsrFirstName("Patryk");
//                usr2.setUsrLastName("Racuch");
//                usr2.setUsrLogin("prac");
//                //Hasło to pass1111
//                usr2.setUsrPassword("f1849f35b378d869c8ea6c839f8183ac");
//                usr2.setUsrStatus(null);
//                uDao.saveOrUpdate(usr2);
//
//                DepartmentUserEntity depusr1 = new DepartmentUserEntity();
//                UserEntity us1 = uDao.findByLogin("mnal");
//                depusr1.setUdeUser(us1);
//                Long id1 = Integer.toUnsignedLong(1);
//                DepartmentEntity de11 = depDao.findOne(id1);
//                depusr1.setUdeDepartment(de11);
//                duDao.saveOrUpdate(depusr1);
//
//                DepartmentUserEntity depusr2 = new DepartmentUserEntity();
//                UserEntity us2 = uDao.findByLogin("prac");
//                depusr2.setUdeUser(us2);
//                Long id2 = Integer.toUnsignedLong(2);
//                DepartmentEntity de12 = depDao.findOne(id2);
//                depusr2.setUdeDepartment(de12);
//                duDao.saveOrUpdate(depusr2);
//
//            }
//
//            if(docDao.findAll().isEmpty()){
//                DocumentEntity documentEntity = new DocumentEntity();
//		documentEntity.setDocName("Document one");
//		documentEntity.setDocDctId(dtDao.findByName("Statystyki").get(0));
//		documentEntity.setIsFinal("0");
//		docDao.saveOrUpdate(documentEntity);
//
//                DepUsrDocEntity depUsrDocEntity = new DepUsrDocEntity();
//                Long id3 = Integer.toUnsignedLong(1);
//                DepartmentUserEntity due = duDao.findOne(id3);
//		depUsrDocEntity.setDudDepartmentUser(due);
//                DocumentEntity de = docDao.findOne(id3);
//		depUsrDocEntity.setDudDocument(de);
//		depUsrDocEntity.setDudPermission(DocPermission.OWNER);
//		dudDao.save(depUsrDocEntity);
//             }
//
//            if(dhDao.findAll().isEmpty()){
//               DocHistoryEntity dhe = new DocHistoryEntity();
//               Long id4 = Integer.toUnsignedLong(1);
//               dhe.setDchDocId(id4);
//               dhe.setDchDocDctId(id4);
//               dhe.setDchDocName("Doc 1");
//               dhe.setDchComment("Creation");
//               dhDao.saveOrUpdate(dhe);
//
//             }
            
        }
    
}

